﻿using Basic.HrRemoteModel;
using Basic.HrRemoteModel.Emp.Model;
using WeDonekRpc.Client;
using WeDonekRpc.Model;

namespace Basic.HrService.Interface
{
    public interface IEmpService
    {
        string GetEmpName ( long id );
        EmpPostTitle GetPostTitle ( long empId, long deptId );
        Dictionary<long, string> GetEmpName ( long[] ids );
        bool CheckIsRepeat ( DataRepeatCheck check );
        long Add ( EmpAdd add );
        void Delete ( long id );
        EmpData Get ( long id );
        EmpBasic GetBasic ( long id );
        EmpSelectItem[] GetSelectItems ( SelectGetParam param );
        PagingResult<EmpBasicDatum> Query ( EmpQuery query, IBasicPage paging );
        void Set ( long id, EmpSet set );
        EmpBasicDatum[] GetBasics ( long[] empId, long companyId );
        EmpBasicDatum GetEmpBasic ( long id, long companyId );
        PagingResult<EmpBasicDto> QueryEmp ( EmpQuery query, IBasicPage paging );
        void SetEmpStatus ( long id, HrEmpStatus status );
        void SetEmpHead ( long empId, string headUri, long fileId );
        void SetEmpEntry ( long id, EmpEntry datum );
        EmpBase[] SearchEmp ( EmpGetQuery param );
        EmpInfo[] GetInfos ( long[] empId );
        T[] Gets<T> ( long[] ids ) where T : class;
        T Get<T> ( long id ) where T : class;
        EmpUnitDept[] GetsUnitDept ( long[] empId );
        string[] GetNames ( long[] ids );
        EmpInfo GetInfo ( long empId );
        void SetDatum ( long id, PersonDatum datum );
        long[] FindEmpId ( EmpFindParam param );
    }
}